Popularity of mobile computing devices has increased dramatically over a relatively short period of time, and so has the popularity of location-based applications that can be executed on these devices. Mobile computing devices such as smart phones are different from conventional computing devices in that users generally carry their smart phones with them as they travel. Currently, smart phones are equipped with sophisticated operating systems that facilitate execution of a multitude of different types of applications, such as client-side e-mail applications, word processing applications, spreadsheet applications, and the like.
Additionally, many applications have been developed for execution on mobile computing devices that utilize location to provide a particular service. These applications will be referred to herein as “location-based” applications. An exemplary location-based application is social networking application that is configured to inform a user of a mobile computing device when a location-based constraint specified by the user has been satisfied. In a first exemplary location-based social networking application, a first user of a first mobile computing device may indicate that she wishes to be informed whenever a second user (an individual registered as a contact of the first user of the social networking application) is within a particular geographic range of a current location of the first user. Conventionally, this is accomplished by causing the mobile computing devices of the first and second users to upload latitude/longitude coordinates to a server in a cloud computing environment, where the server is configured to compare the latitude/longitude coordinates of the users to determine when the location constraint (the second user is within a predefined geographic distance of the first user) is satisfied. If it is determined that the two users are in geographic proximity to one another, a notification can be sent to at least the first mobile computing device of the first user that informs the first user that the second user is nearby.
Another exemplary location-based social networking application supports historic querying of location data. For example, the first user of the first computing device can issue a query to ascertain whether a friend of the first user has ever visited a specified geographic location and/or provided any information pertaining to the specified geographic location. In an example, the first user may be near a restaurant and may wonder if any of her friends have previously frequented the restaurant and provided a review of the restaurant. Accordingly, the location-based application executing on the first mobile computing device of the user can upload the location of the restaurant to the cloud computing service, which may then compare such location with geographic locations uploaded by friends of the user that are also registered with the location-based application. If it is determined that a friend of the first user (e.g., the second user) has uploaded data that indicates that the second user visited the restaurant (and provided a review of the restaurant), then the cloud computing service can transmit a notification to the first mobile computing device that informs the first user that the second user has previously been a patron at the restaurant and that the second user has reviewed the restaurant.
Currently, the design of these services is such that the cloud computing service has access to the actual locations of users.